﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using BLL.Concrete;

namespace BackOffice.Controllers
{
    public class ClientesController : Controller
    {
        //
        // GET: /Clientes/
        ClientesBll clientesBll;

        public ClientesController()
        {
            clientesBll = new ClientesBll();
        }

        public ActionResult PartialMenu()
        {
            return PartialView();
        }

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult ListClientes()
        {
            var clientes = clientesBll.GetClientes().ToList();
            ViewData.Model = clientes;
            return PartialView();
        }

        public ActionResult Cliente(int idCliente)
        {
            var cliente = clientesBll.GetClientes().Single(u => u.Id == idCliente);
            ViewData.Model = cliente;
            if (TempData["mensajeSuccess"] != null)
            {
                ViewData["mensajeSuccess"] = TempData["mensajeSuccess"].ToString();
            }
            return View("ClienteEdit");
        }

        public ActionResult NuevoCliente()
        {
            ViewData.Model = null;
            return View("ClienteEdit");
        }

        [HttpPost]
        public ActionResult DeleteCliente(int idCliente)
        {
            try
            {
                clientesBll.EliminarCliente(idCliente);
                return Json(new { success = true, mensaje = "Cliente eliminado con éxito" });
            }
            catch
            {
                return Json(new { success = false, mensaje = "El cliente no pudo ser eliminado" });
            }
        }

        [HttpPost]
        public ActionResult InsertCliente(string nombre, HttpPostedFileBase imagenColor, HttpPostedFileBase imagenBlancoNegro)
        {
            int idCliente = clientesBll.InsertCliente(nombre, imagenColor, imagenBlancoNegro);
            TempData["mensajeSuccess"] = "Cliente creado con exito";
            return RedirectToAction("Cliente", new { idCliente = idCliente });
        }

        [HttpPost]
        public ActionResult UpdateCliente(int idCliente, string nombre, HttpPostedFileBase imagenColor, HttpPostedFileBase imagenBlancoNegro)
        {
            clientesBll.UpdateCliente(idCliente, nombre,imagenColor,imagenBlancoNegro);
            return RedirectToAction("Cliente", new { idCliente = idCliente });
        }

    }
}
